﻿using Sustainalytics.DynamicsCRMGateway.Entities;
using System;
using System.Collections.Generic;

namespace Sustainalytics.DynamicsCRMGateway
{
    public interface IDynamicsCrmGateway
    {
        TimeSpan GetCrmTimeOffset();

        List<Guid> ListAccountsIds();

        List<Sustainalytics.Entities.Account> ListChangedAccounts(DateTime changedSince);


        List<Guid> ListContactsIds();

        List<CrmContact> ListChangedContacts(DateTime changedSince);
        SchemaValidationResult ValidateSchema();

        List<CrmContact> ListContactsByAccountId(Guid guid);

        IEnumerable<Feature> ListFeatures();
        IEnumerable<Claim> ListClaims();
        IEnumerable<FeatureClaimBridge> ListFeatureClaims();
        IEnumerable<AccountFeature> ListAccountFeatures();
    }
}
